package listnode;

public class _1290_二进制链表转整数 {


    /**
     * 给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。
     *
     * 请你返回该链表所表示数字的 十进制值 。
     *
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode-cn.com/problems/convert-binary-number-in-a-linked-list-to-integer
     * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
     * @param head
     * @return
     */
    public int getDecimalValue(ListNode head) {
        ListNode cur = head;
        int len = 0;
        while (cur != null) {
            len++;
            cur = cur.next;
        }
        int sum = 0;
        cur = head;
        while (cur != null) {
            len--;
            if (cur.val == 1) {
                sum += Math.pow(2,len);
            }
            cur = cur.next;
        }
        return sum;
    }

    public static void main(String[] args) {

    }
}
